#ifndef AER_CUSTOMEFFECT_HPP_
#define AER_CUSTOMEFFECT_HPP_

#include "aerPostEffect.hpp"
#include "../device/aerProgram.hpp"
#include "../device/aerTexture.hpp"
#include "../device/aerRenderTexture.hpp"
#include "../misc/aerScreenQuad.hpp"

namespace aer {

class CustomEffect : public PostEffect
{
  private:
    Program m_program;
    RenderTexture m_renderTexture;
    
    struct Input
    {
      Texture *pColor;
      float *pTime;
    } m_input;
    
    struct Output
    {
      Texture color;
    } m_output;
    
    bool m_bVignetting;//
    bool m_bGammaCorrection;//
    
    
  public:
    CustomEffect();
    ~CustomEffect();
    
    void init();
    void resize(const U32 width, const U32 height);
    void apply();
    
};

} // aer

#endif //AER_CUSTOMEFFECT_HPP_
